﻿using System;
using System.Collections.Generic;
using System.Text;
using Dare.Utilities.Data;

namespace Stone.Data
{
    public interface IDataProviderManager
    {
        IDataProviderManager CreateNew();

        IDataProviderManager CreateNew(string connectionString);

        string Key { get;}

        string Name { get;}

        string Description { get;}

        T GetDataProvider<T>()
            where T : DataProviderBase;

        string BuildConnectionString(string server, int port, string dbName, string userName, string userPassword);

        string DefaultConnectionString { get; set;}

        void SetDefaultConnectionString(string server, int port, string dbName, string userName, string password);

        TransactionManager CreateTransaction();
    }
}
